package me.firstapp.service.weixin.member;

import java.util.Date;
import java.util.List;
import java.util.Map;

import me.firstapp.common.utils.Page;
import me.firstapp.module.weixin.member.Member;

public interface MemberService {

	Member executeAddMember(String openId, String chiefOpenId, String chiefCardNo, String name, String avatar,
			String weixin);

	Member executeUpdateMember(String openId, String mobile, String weixin, Integer status, Integer followStatus);

	Member executeUpdateMember(String openId, String name, String avatar);

	Member findMemberByOpenId(String openId);

	Member findByMobile(String mobile);

	Long findTotalFansCounts(String chiefOpenId);

	List<Member> findFansPage(Integer pageNo, Integer pageSize, String chiefOpenId);

	List<Member> findPartnerAgentPage(Integer pageNo, Integer pageSize, String partnerOpenId);

	List<Member> findMembersForRank(int limitCounts);

	List<Member> findMembersPage(Integer pageNo, Integer pageSize);

	List<Member> findMembersPage(Integer pageNo, Integer pageSize, List<Integer> levelList);

	Member executeUpdateMember(Member member);

	Page<Member> findMemberPage(Integer pageNo, Integer pageSize, Map<String, Object> searchParams, String sortParam,
			String sortType, Date startTime, Date endTime, Integer vipLevel, String partnerOpenId);

	List<Member> findFans(String chiefOpenId);
}
